Opérations élémentaires sur les nombres


In [21]:
3 + 4  # Addition


Out[21]:
7

In [22]:
4 - 3  # Soustraction


Out[22]:
1

In [23]:
3 * 4  # Multiplication


Out[23]:
12

In [24]:
4 / 2  # Division


Out[24]:
2.0

Dans ce dernier cas, on remarque que le nombre a un point décimal (Python utilise un point plutôt qu'une virgule pour séparer la partie décimale). Le résultat est un nombre décimal qui est différent d'un nombre entier.


In [25]:
print(type(2))   # entier, ou "int" pour "integer" en anglais


<class 'int'>

In [26]:
print(type(2.0))  # nombre décimal ou "float" pour "floating point number" en anglais


<class 'float'>

In [27]:
1.5e3  # notation scientifique


Out[27]:
1500.0

Si on désire que le résultat de la division de deux entiers soit également un entier, on utilise la division entière, qui arrondit le résultat vers le bas.


In [28]:
4 // 2


Out[28]:
2

In [29]:
7 // 3


Out[29]:
2

Lorsqu'on divise deux entiers comme ci-dessus, il peut y avoir un reste; on peut obtenir ce reste en utilisant l'opérateur "modulo"


In [30]:
7 % 3


Out[30]:
1

En utilisant la fonction divmod on peut obtenir à la fois le résultat de la division entière et le reste; ces deux valeurs sont données dans un tuple.


In [31]:
divmod(7, 3)  # 7 = 2*3 + 1


Out[31]:
(2, 1)

On peut également calculer l'exposant d'un nombre, tel que $2^3 = 8$ de la façon suivante:


In [32]:
2**3


Out[32]:
8

On peut également utiliser des exposant fractionnaire comme on le fait en mathématiques, $$16^{1/2} = \sqrt{16} = 4$$


In [33]:
16 ** (1/2)


Out[33]:
4.0

Les nombres complexes

En plus des entiers et des réels (représentés par des nombres décimaux), Python permet de représenter des nombres complexes.

Un nombre complexe $z$ comprend une partie réelle et une partie imaginaire:

$$ z = a + b i$$

où $i = \sqrt{-1}$. Au lieu de $i$, Python utilise $j$ pour représenter la partie imaginaire.


In [37]:
(-1) ** (1/2)


Out[37]:
(6.123233995736766e-17+1j)

Comme on peut le voir, le résultat obtenu n'est pas exact: la partie réelle est égale à 0.0000000000000000612... au lieu d'être identiquement égale à zéro. Ceci n'est pas unique à Python: les ordinateurs représentent les nombres décimaux avec un nombre limité de chiffres significatifs et des erreurs d'arrondissement peuvent se produire. Dans le cas qui nous intéresse, on peut importer du module cmath (complex mathematics) la fonction sqrt (square root, la traduction anglaise de 'racine carrée') qui permet dans ce cas-ci d'obtenir le résultat exact.


In [39]:
from cmath import sqrt
sqrt(-1)


Out[39]:
1j

In [41]:
print(type(1j))


<class 'complex'>

On peut obtenir séparément les parties réelle et imaginaire d'un nombre complexe.


In [42]:
z = 1.2 + 3.4j
print("partie réelle: ", z.real)
print("partie imaginaire: ", z.imag)


partie réelle:  1.2
partie imaginaire:  3.4